package com.fubowen.lepton.conf

import androidx.room.Database
import androidx.room.RoomDatabase
import com.fubowen.lepton.bean.BookBean
import com.fubowen.lepton.bean.BookChapterBean
import com.fubowen.lepton.bean.BookmarkBean
import com.fubowen.lepton.bean.Home
import com.fubowen.lepton.bean.Password
import com.fubowen.lepton.bean.Setting
import com.fubowen.lepton.bean.Suggest
import com.fubowen.lepton.bean.Theme
import com.fubowen.lepton.bean.ThemeValue
import com.fubowen.lepton.bean.VisitedBean
import com.fubowen.lepton.dao.BookDao
import com.fubowen.lepton.dao.BookmarkDao
import com.fubowen.lepton.dao.HomeDao
import com.fubowen.lepton.dao.PasswordDao
import com.fubowen.lepton.dao.SettingDao
import com.fubowen.lepton.dao.SuggestDao
import com.fubowen.lepton.dao.ThemeDao
import com.fubowen.lepton.dao.VisitedDao

@Database(
    entities = [
        BookmarkBean::class,
        Setting::class,
        VisitedBean::class,
        Suggest::class,
        Password::class,
        Home::class,
        BookBean::class,
        BookChapterBean::class,
        Theme::class,
        ThemeValue::class,
    ],
    version = 54,
    exportSchema = false
)
abstract class LeptonDatabase : RoomDatabase() {

    abstract fun bookmarkDao(): BookmarkDao
    abstract fun settingDao(): SettingDao
    abstract fun visitedDao(): VisitedDao
    abstract fun suggestDao(): SuggestDao
    abstract fun passwordDao(): PasswordDao
    abstract fun homeDao(): HomeDao
    abstract fun bookDao(): BookDao
    abstract fun themeDao(): ThemeDao
}